from django.shortcuts import render,redirect
#导包
from django.http import HttpResponse,HttpResponseRedirect,JsonResponse
from django.utils.decorators import method_decorator
from myapp.myser import *
#导入类视图
from django.views import View

from myapp.models import *
import json
from django.core.serializers import serialize
from rest_framework.response import Response
from rest_framework.views import APIView
#导入加密库
import hashlib
#导入图片库
#绘画库
from PIL import ImageDraw
#字体库
from PIL import ImageFont
#图片库
from PIL import Image
#随机库
import random
#文件流
import io

import requests

#导入上传文件夹配置
from mydjango.settings import UPLOAD_ROOT
import os

#导入原生sql模块
from django.db import connection

import jwt

#导入redis数据库
import redis

#导入时间模块
import time

#导入公共目录变量
from mydjango.settings import BASE_DIR

#导包
from django.db.models import Q,F

#导入dwebsocket的库
from dwebsocket.decorators import accept_websocket
import uuid

from PIL import Image,ImageDraw

from myapp.myser import Userser,GoodsSer

# mongoDB
import pymongo

# 建立mongo连接
cli = pymongo.MongoClient(host='127.0.0.1',port=27017)

 # 导包
import redis


#商品入库接口
#插入幻灯片
class InsertGoods2(APIView):

	def get(self,request):

		#接收参数  dict['username']
		name = request.GET.get('name','null')
		desc = request.GET.get('desc','null')
		param = request.GET.get('param','null')
		cid = request.GET.get('cid','null')
		price = request.GET.get('price','null')

		#排重
		goods = Goods.objects.filter(name=name).first()

		if goods:
			res = {}
			res['code'] = 405
			res['message'] = '该商品已存在'
			return Response(res)

		#入库
		goods = Goods(name=name,desc=desc,cid=cid,param=param,price=price)
		goods.save()

		#查询商品id
		goods = Goods.objects.filter(name=name).first()

		res = {}
		res['code'] = 200
		res['id'] = goods.id
		res['message'] = '恭喜，添加成功'

		return Response(res)


# 商品信息接口
class GoodInfo2(APIView):
    def get(self,request):
        id = int(request.GET.get('id',0))

        # 查询数据
        good = Goods.objects.get(id=id)

        # 序列化操作
        good_ser = GoodsSer(good)

        return Response(good_ser.data)

        # 商品列表页

class GoodsList2(APIView):
    def get(self, request):
        # 当前页
        page = int(request.GET.get('page', 1))
        # 一页有多少条上商品
        size = int(request.GET.get('size', 1))

        # 定义从那开始切
        data_start = (page - 1) * size
        # 定义切到那儿
        data_end = page * size

        # 查询数据
        goodslist = Goods.objects.all()[data_start:data_end]
        # 查询总数量
        count = Goods.objects.count()
        # 序列化操作
        goods_ser = GoodsSer(goodslist, many=True)
        res = {}
        res['total'] = count
        res['data'] = goods_ser.data
        return Response(res)


# 商品标签添加接口
class AddTags(APIView):
    def get(self, request):

        id = request.GET.get('id', None)
        tags = request.GET.get('tags', None)
        tags = tags.split(",")

        # 建立数据库对象
        db = cli.md
        # 建立表对象
        table = db.mytag

        # 排重操作
        # 查询
        res = table.find({"gid": str(id)}).count()

        if res > 0:
            return Response({'message': '已存在'})
        else:
            # 入库操作
            table.insert({"gid": str(id), "tags": tags})

            return Response({'message': '入库成功'})